package day12.Stream.File;

import java.io.File;

public class test4 {
    /*
    需求：
        设计一个方法，删除文件夹
        注意：
        delete（）只能删除空文件夹

     */
    public static void main(String[] args) {
//        getDelete(new File("D:\\ashen"));
        System.out.println(getLength(new File("D:\\Test")));

    }

    private static void getDelete(File dir) {
        //获取当前路径下的文件或文件夹
        File[] files = dir.listFiles();

        for (File file : files) {
            if (file.isFile()) {
                //文件直接删
                file.delete();
            } else {
                //文件夹的话，需要进入文件夹继续删除
                if (file.listFiles() != null) {
                    getDelete(file);
                }
            }
        }

        //当for循环方法走完整个文件夹是空的
        dir.delete();
    }

    //统计文件夹大小
    private static long getLength(File dir){
        long sum = 0;
        File[] files = dir.listFiles();
        for (File file : files) {
            if (file.isFile()){
                sum += file.length();
            }else {
                if (file.listFiles()!=null ){
                    //文件夹大小累加
                    sum+=getLength(file);
                }
            }
        }
        return sum;

    }
}